#include "Shape.h"
//Creamos el Shape
Shape::Shape ()
:
//para ello primeo necesitamos una entidad primero que nada
Entity2D(),
m_pkVertices(NULL)//ponemos los vertices en null
{

}
void Shape::GetColor (int &iRed, int &iGreen, int &iBlue) const
{
	//obtengo los colores
	iRed = getR(m_pkVertices[0].color);
	iGreen = getG(m_pkVertices[0].color);
	iBlue = getB(m_pkVertices[0].color);
}
void Shape::SetColor (int iRed, int iGreen, int iBlue)
{
	for (int i=0; i < m_iCantVertices; i++)
	{
		//seteo el color solicitado en todos los vertices
		m_pkVertices[i].color = D3DCOLOR_XRGB(iRed, iGreen, iBlue);
	}
}
bool Shape::GetVertexColor (int iVertex, int &iRed, int &iGreen, int &iBlue)
{
	//si me piden un vertice mayor a la cantidad que tengo
	if (iVertex >= m_iCantVertices)
	{
		//devuelvo false ya que es imposible.
		return false;
	}
	//sino devuelvo los colores correspondientes
	iRed = getR(m_pkVertices[iVertex].color);
	iGreen = getG(m_pkVertices[iVertex].color);
	iBlue = getB(m_pkVertices[iVertex].color);
	return true;
}
bool Shape::SetVertexColor (int iVertex, int iRed, int iGreen, int iBlue)
{
	//misma verificacion que arriba
	if (iVertex >= m_iCantVertices)
	{
		return false;
	}
	//si esta todo ok asigno color
	m_pkVertices[iVertex].color = D3DCOLOR_XRGB(iRed, iGreen, iBlue);
	return true;
}
void Shape::Draw (Renderer * rkRenderer)
{
	Entity2D::Draw(rkRenderer);
}
void Shape::Update(float p_fTimeBetweenFrames)
{
	Entity2D::Update(p_fTimeBetweenFrames);
}